package com.ybt.communicate.core;

import com.ybt.communicate.core.exception.ProtocolException;

/**
 * 通信协议接口.
 * @author AB033862
 * Jul 24, 2012
 */
public interface IProtocol {
    /**
     * 启动协议
     * @throws ProtocolException
     */
    public void start()throws ProtocolException;
    /**
     * 停止协议
     * @throws ProtocolException
     */
    public void stop()throws ProtocolException;
    /**
     * 查询协议是否已经启动
     * @return 
     */
    public boolean isStart();
    
    /**
     * 创建该协议的一个连接器实例.
     * @return
     * @throws ProtocolException
     */
    public IConnection createConnection()throws ProtocolException; 

    /**
     * 创建该协议的一个连接器实例.
     * @param timeout 超时时间
     * @return
     * @throws ProtocolException
     */
    public IConnection createConnection(long timeout)throws ProtocolException; 
}
